#! /bin/bash -e

#docker部署脚本: 构建单jar的docker镜像, 单jar镜像的实用意义不大,仅用于简单示例
#删除容器和镜像
#创建镜像
#启动容器
#设置自启动

echo ;echo ===开始执行脚本
#定位到sh所在目录
cd `dirname $0`
echo 当前目录=`pwd`

app="cicd-0.0.2.jar"
dir="./cicd/"
imageTag="cicd:0.0.2"
containerName="cicd"

echo app=$app, dir=$dir
echo imageTag=$imageTag, containerName=$containerName
mkdir -p $dir/{config,logs}

#删除容器和镜像
echo 删除容器--耗时操作:$containerName
docker rm -f $containerName;
imageId=`docker images|grep $containerName|awk '{print $3}'`
if [ -n "$imageId" ]; then
    echo 删除镜像:$containerName, $imageId
    docker rmi $imageId
fi

#创建镜像
# 注意最后要有 ".;"
# https://www.runoob.com/docker/docker-build-command.html
echo 创建镜像--耗时操作
docker build \
--build-arg JAR_FILE=$app \
--tag $imageTag \
.;

#启动容器
#.创建时不设成自启动!避免脚本错误导致一直重启
echo 启动容器--耗时操作
#docker run --name $containerName -d $imageTag
docker run -d \
-p 8080:8080 \
-v `pwd`/$dir/config:/app/config \
-v `pwd`/$dir/logs:/app/logs \
--name $containerName \
$imageTag;

#设置自启动
docker update --restart=always $containerName

echo 执行完毕!

#其他命令
# docker logs -f --tail 10 cicd
# docker logs cicd
# docker exec -it cicd /bin/bash
